Linux磁盘分区基本操作 |
您所在的位置:网站首页 › linux 分区操作 › Linux磁盘分区基本操作 |
注意:本文全部信息均来自于《鸟哥私房菜》第二章·第二节 磁盘分区 & 第七章·第一节 磁盘的分区-格式化-检验-挂载 第一部分进行基本的磁盘概念介绍,第二部分介绍硬盘分区的实操过程(GPT格式) 一、磁盘连接方式和设备名称Linux中所有设备均是以文件的形式存在,存储设备通常以以下两种形式存在: 正常物理机器使用的磁盘名称:/dev/sd[a-p] 虚拟机环境中为了加速会使用:/dev/vd[a-p] # 备注:SATA、USB、SAS磁盘接口均是使用SCSI模块进行驱动的,因此设备文件名称都是/dev/sd[a-p]格式 二、MBR(MS-DOS)和GPT磁盘分区表磁盘构成:碟片、机械手臂、磁头、主轴马达 碟片:碟片上进行信息存储,分为扇区(Sector)和磁道(Track)。扇区的物理大小有两种:512字节和4K字节。 首个扇区:第一个扇区尤为重要,存储了整个磁盘的重要信息。早期信息存放为MBR(Master Boot Record);在2TB以上磁盘分区某些系统无法读取,因此有了GPT(GUID partition table)。 1、MBR(MS-DOS)分区表格式和控制 全称为Master Boot Record,主引导记录。早期Linux为了兼容Windows采用的处理启动引导程序和分区表的方法。旧的磁盘扇区都是512个 字节,共含有以下两种信息: 主引导记录(Master Boot Record):安装引导启动程序,共含有446字节; 分区表(partition table):记录整个硬盘分区状态,共含有64字节--只能有4组主要分区,每组有16个字节。 MBR有以下缺点: 无法使用2.2TB以上的磁盘容量; MBR仅有一个分区,破坏后无法使用; MBR内部引导程序之后446字节,无法放入更多。 2、GPT(GUID partition table)磁盘分区表 扇区定义使用逻辑区块地址(Logical Block Address, LBA)进行处理,每一个区块默认512字节。第一个LBA为LBA0,以此类推。 和MBR仅使用一个扇区512字节记录不同,GPT使用34个LBA区块记录分区信息(磁盘结尾的34个LBA区块用于备份,这个很骚气)。 具体的34个LBA的存储内容和用途如下: LBA0(MBR兼容区块):446字节的启动引导程序 + 分区表特殊符号占位; LBA1(GPT表头记录):记录分区表本身的位置与大小、校验码,同时记录了备份GPT分区(末尾)的位置,用于纠错。 LBA2-33(实际记录分区处):每个LBA可以记录4组分区记录,每一组记录占用128字节。则从LBA2到LBA33共由32个表,则有4*32=128组分区记录(128个Entry)。GPT在每组记录最后添加了64位来记载开始/结束扇区号码(64位寻址功能),则对于GPT中的单一分区而言,最大容量限制在: 管理工具汇总:fdisk不支持GPT,只能使用gdisk或parted。 启动引导程序:grub第一版不支持GPT,grub2以后才会支持。 启动的检测程序:BIOS和UEFI。 三、BOIS和UEFI启动检测程序两者概念区分: BIOS:是一个写入到主板上的一个固件(固件是写入到硬件上的一个软件程序),是计算机系统主动执行的第一个程序,使用汇编语言编写。BIOS可以搭配MBR/GPT启动。 UEFI(Unified extensible Firmware Interface, 统一可扩展固件接口):也称为UEFI BIOS,使用C语言编写。UEFI BIOS可以搭配GPT启动。 四、Linux安装时磁盘分区的选择(极其重要)挂载概念-mount:利用一个目录当成进入点,将磁盘分区的数据防止在该目录下;进入该目录就可以读取该分区。 Linux安装过程的挂载:根目录一定要挂载到某个分区,其他目录按照要求挂载在不同分区即可。 初次使用建议:只需要划分"/"和“交换分区”即可,避免分区不够大造成的窘境。 五、磁盘的分区、格式化、检验与挂载1、观察磁盘分区状态 共有以下三种方法。 $ lsblk $ lsblk -ip /dev/vda # list block device-列出所有磁盘列表,即所有存储设备.i-使用ASCII字符输出.p-列出设备完整文件名称。 $ blkid (sudo) # 列出设备的UUID(全局唯一标识符)等参数,用于挂载或者使用设备和文件系统。 $ parted /dev/sda print # 列出这个盘上的分区格式信息和文件系统2、磁盘分区:gdisk/fdisk 操作分区的步骤:通过lsblk和blkid找到磁盘,再通过parted /dev/sd[a-p] print找出内部的分区表类型,最终决定使用gdisk或fdisk进行分区操作。 $ gdisk /dev/sda # 进入分区命令行之后,可以通过?获取指令说明注意:gdisk后只能接磁盘名称/dev/sda,而不是分区名称/dev/sda1。操作是对整个磁盘而言的。 常用指令如下: p:输出目前磁盘的状态,打印分区表; n:新增一个分区;分区号默认-->首个扇区位置默认-->结束扇区默认[可以采用+1G的方式定大小]-->Code设定[默认Linux文件系统8300 / swap为8200 / LVM为8E00] d:删除一个分区;删除时通过分区号来定位分区 q:不管进行了什么操作,只要最后输入q即可不保存退出; w:写入并且生效。 注意:键入w之后会提示有warning,在重启之后才会更新内核,载入新的GPT分区表。 $ cat /proc/partitions # 重启之前不会显示新的分区 $ partprobe -s # 手动更新Linux内核的分区表信息,运行之后再次输出上个命令即可显示更新的分区表。3、磁盘格式化(创建文件系统) 分区完毕之后需要进行文件系统的格式化,命令为mkfs (make filesystem)。 mkfs.xfs /dev/sda1:还需要添加一堆配置,可以使用多个数据流来读写系统,agcount和CPU的内核数搭配。 mkfs.ext4 /dev/sda1:-b选项可以谁知区块的大小,有1K/2K/4K的容量,默认4K。 4、手动挂载 挂载点是目录,目录是进入磁盘分区(文件系统)的入口。需要注意以下三点: 1.单一文件系统不应当被重复挂载于不同目录中(一区不能对应多目录); 2.单一目录不应该重复挂载多个文件系统(一目录不能对应多区); 3.做为挂载点的目录原则上是空目录(非空目录挂载覆盖之后原文件会消失)。 挂载命令为mount,简要使用过程如下: # 显示分区的UUID: $ blkid /dev/sda1 # 进行挂载: $ mount UUID="..." /data/file # 检查挂载: $ df /data/file # 打印所有挂载信息 $ mount5、启动自动挂载 使用cat /etc/fstab查看文件下的内容,共有以下六个字段: $ cat /etc/fstab [设备/UUID] [挂载点] [文件系统] [文件系统参数] [dump] [fsck] # [设备/UUID]:可以填写分区的全称、UUID、文件系统的LABEL名称,建议UUID # [挂载点]:就是个目录 # [文件系统]:写文件必须手动添加:sfs/ext4/vfat/reiserfs/nfs # [文件系统参数]:挂载时的各种参数 # [dump]:备份方案,直接填0 # [fsck]:检验,直接填0
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |